Error correction, using an error correction code, improves the reliability of communication systems and devices. In existing encoding methods, an encoder at the transmission end of a communication encodes an input word, for example, a block or vector of a given length, to produce a codeword of the error correction code. A decoder at the receiving end of the communication decodes a received word (block), yielding an estimation of the codeword that may indicate the original input word.
The rate of an error correction code is the ratio of the number of input bits to the number of output symbols. The better the channel conditions, the higher the code rate that can be used while still achieving an acceptable performance. Puncturing and/or repetition of a code with a given rate may achieve a different effective rate and may also yield a code of a different quality.
A conventional transmitter stores in its memory one or a small number of algorithms to produce codewords of a certain code, each code enabling a certain rate and a certain block length to be used. Additionally, a transmitter may use rate-matching techniques to implement puncturing and/or repetition to the output codewords produced by one of the algorithms.
A convention receiver stores in its memory one or a small number of decoding algorithms to decode codewords of a certain code, possibly after rate-matching techniques are used on the codewords of the certain code.
When a transmitter and a receiver communicate over a communication channel, coordination concerning the code used for the communication is desirable.
It will be appreciated that for simplicity and clarity of illustration, elements shown in the figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements may be exaggerated relative to other elements for clarity.